import java.util.Scanner;

public class HelloBit {
    public static void main1(String[] args) {
        //看似顺序的人生中夹杂着循环，伴随着一次次选择不断成长
        //顺序  按照代码顺序执行
        System.out.println("1");
        System.out.println("2");
        System.out.println("3");


        // 分支  if(布尔表达式){} 条件表达式必须为布尔表达式
        int a=10;
        if(a == 10) {
            System.out.println("a==10");
        }

        int b = 20;
        if(b == 20) {
            System.out.println("20");
        }else {
            System.out.println("!20");
        }

        int c = 10;
        if(c == 10) {
            System.out.println("10");
        }
        System.out.println("20");

        int d = 10;
        if(d == 10) {
            System.out.println("10");
        }else if(d == 20) {
            System.out.println("20");
        }else {
            System.out.println("30");
        }

        //一条语句也要加大括号，增加可读性，代码格式要好看
        //三种格式
        // 1.if    2.if else
        // 3.if else if else

        // 循环 选择

    }

    public static void main2(String[] args) {
        int a = 10;
        //此处是警告（黄色地方，因为a的值已经确定，所以结果恒为假）
        if(a % 2 != 0) {
            System.out.println("奇数");
        }else {
            System.out.println("偶数");
        }

        if(a > 0) {
            System.out.println("正数");
        }else if (a < 0) {
            System.out.println("负数");
        }else {
            System.out.println("0");
        }
    }
    //闰年  世纪闰年  400的倍数100的倍数 普通闰年  4的倍数不是100的倍数
    public static void main3(String[] args) {
         int year = 2022;
         if(year % 100 == 0) {
             if(year % 400 == 0) {
                 System.out.println("if leap year");
             }else {
                 System.out.println("no");
             }
         }else {
             if(year % 4 == 0) {
                 System.out.println("is leap year");
             }else {
                 System.out.println("no");
             }
         }


        if((year % 100 == 0 && year % 400 == 0 ) || (year %100 != 0 && year % 4 == 0 )) {
            System.out.println(year+"闰年");
        }else {
            System.out.println("bushi");
        }


        if(( year % 400 == 0 ) || (year %100 != 0 && year % 4 == 0 )) {
            System.out.println(year+"闰年");
        }else {
            System.out.println("bushi");
        }
    }

    public static void main4(String[] args) {
        //if;{//此处代码无条件执行}  if后面加分号，代表语句执行
        //悬垂else语句 else 和最近的if匹配
        int x = 10;
        int y = 20;
        if(x == 20) {
            if(y == 20) {
                System.out.println("hehe");
            }
            else {
            System.out.println("haha");
            }
        }
    }

    public static void main5(String[] args) {
        int a = 10;
        switch(a) {
            case 1:
                System.out.println("1");
                break;
            case 2:
                System.out.println("2");
                break;
            case 3:
                System.out.println("3");
                break;
            default:
                System.out.println("wrong");
                break;
        }
        //switch语句和if选择语句相似，必须要有break，不然就会连续输出
        //default也要有
        //不能做switch参数的数据类型是什么 long boolean float double
        //char 和string可以做switch的数据类型,枚举也可以
        //多个case后的常量值不能重复，break不要遗落
        //switch语句不能表达复杂的条件
        //switch后面不能加布尔表达式

        String str="i love you";
        switch(str){
            case "haha":
                System.out.println("haha");
                break;
            case "hehe":
                System.out.println("hehe");
                break;
            case "heihei":
                System.out.println("heihei");
                break;
            default:
                System.out.println("wrong");
                break;
        }

    }
    //复杂表达式一般用if语句，因此switch不支持条件，多分支可以用switch

    //循环语句  重复的做某件事
    public static void main8(String[] args) {
        //while 循环 for  do while循环
        //while(布尔表达式1)
        int a = 1;
        while(a <= 10) {
            System.out.println(a+"hello");
            a++;
        }

        int sum = 0;
        int i = 1;
        while(i <= 100) {
            sum = sum + i;
            i++;
        }
        i = 1;
        while(i <= 100) {
            sum += i;
            i += 2;
        }
        i = 2;
        while(i <= 100) {
            sum += i;
            i += 2;
        }
    }
    //调试 打断点 在需要的行点一下 右键debug（虫子按钮） 程序运行起来 蓝色即将执行还没执行
    //下边调试窗口  下边有按钮  弯曲的箭头 逐语句（进入函数）  直箭头 逐过程（不进入函数）
    //debug 调试窗口 console 控制台

    //可以条件调试，在断点处右键，可以进行条件调试，输入需要的条件，然后done，然后debug

    public static void main6(String[] args) {
        int a = 1;
        int i = 1;
        int ret = 1;
        while(a <= 5) {
            ret = ret * a;
            a++;
        }
        int sum = 0;
        while(i <= 5) {
            a = 1;
            ret = 1;
            while(a <= i) {
                ret = ret * a;
                a++;
            }
            sum += ret;
        }
    }

    public static void main7(String[] args) {
        while(true) {
            //死循环
        }
    }
    //break continue
    //break 结束整个循环，剩余循环不会再执行了
    //continue 跳过本轮循环，进入下一轮循环
    public static void main9(String[] args) {
        int a = 1;
        while(a <= 10) {
            if(a == 2){
                break;
            }
            System.out.println(a);
            a++;
        }
    }

    public static void main10(String[] args) {
        //找到既能被3也能被5整除的数字
        int i = 1;
        while(i <= 100) {
            if(i % 3 == 0 && i % 5 == 0) {
                System.out.println(i);
            }
            i++;
        }

        //记得在continue前改变条件变量，不然可能会造成死循环
        i = 1;
        while(i <= 100) {
            if(i % 3 !=0 || i % 5 != 0) {
                i++;
                continue;
            }
            System.out.println(i);
            i++;
        }
    }

    public static void main12(String[] args) {
        //for(exp1;exp2;exp3){循环体}
        //exp2必须是布尔表达式

        //for ＋i 快捷键创造fori循环,
        for (int i = 0; i < 100; i++) {
            System.out.println(i);
        }
        //需要创建其他变量的for循环，则只需要将变量名修改就好，一改全改
        for (int k = 0; k < 100; k++) {
            System.out.println(k);
        }
        int ret = 1;
        for (int a = 1; a <= 5; a++) {
            ret *= a;
        }
        //死循环
        for (int i = 0; ; i++) {
            //死循环，没有判断条件默认是true
        }


    }

    public static void main13(String[] args) {
        //do while最后有一个分号，不要忘记

        int i = 0;
        do{
            System.out.println(i);
            i++;

        }while(i <= 10);
    }

    //输入输出
    public static void main(String[] args) {
//        int a = 10;
//        System.out.println(a);
//        //输出且换行
//        System.out.print(a);
//        //输出不换行
//        System.out.printf("%d",a);
//        //格式化输出
//        System.out.printf("\n","好酷");


        Scanner scan = new Scanner(System.in);
       // int n = scan.nextInt();
       // System.out.println(n);
        //在代码最上面会自动引入类
        //在Java当中，我们会用到Java官方写好的工具类，
        System.out.println("输入姓名");
        String name1 = scan.nextLine();
        System.out.println("输入年龄");
        int age = scan.nextInt();
        String name2 = scan.next();//遇到空格就结束，空格后面的获取不到
        String name3 = scan.next();//会将前面没有读取的继续读取

        //如果前面有输入年龄，上面输入回车会被下边（scan.nextLine）获取到
        scan.close();
    }





}
